home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #1 / Amiga Plus 1995 #1.iso / fish-disketten / fish_811-820 / d820 / quickfile / quickfile.doc < prev    next >
Text File  |  1994-12-13  |  26KB  |  690 lines

  1.  
  2.                         QuickFile  v1.2                 16th January 1993
  3.  
  4.  
  5.    ============== CONDITIONS =============================================
  6.  
  7.    This program is not Public Domain, however it can be freely distributed
  8.    provided
  9.  
  10.      1. All documentation and sample files are included unchanged.
  11.  
  12.      2. A reasonable copying fee may be charged but must not exceed the
  13.         charge made by Fred Fish for his AmigaLibDisks.
  14.  
  15.  
  16.    This program may not be included in any commercial product without the
  17.    written permission of the author. 
  18.  
  19.    I accept no liability for any loss or damage resulting from the use of
  20.    this program.  Each user must evaluate it and decide its usefulness for
  21.    his or her own purposes.
  22.  
  23.  
  24.    If you find this program useful, please send a donation (suggested $20).
  25.    This ensures that you get the latest version of the program and entitles
  26.    you to free support and bug fixes (as they become available).
  27.  
  28.    Overseas users - please do not send personal cheques. Please send an
  29.    overseas bank draft in Australian Dollars drawn on an Australian bank.
  30.    This should be readily available from your bank. Any cash currency is
  31.    also OK.
  32.  
  33.  
  34.    I intend to develop the program further if enough interest is shown and
  35.    would appreciate any constructive comments you may have, even if you
  36.    decide not to use it.  Enclosing a stamped self addressed envelope will
  37.    ensure a personal reply.
  38.  
  39.    Donations, comments and bug reports should be sent to:
  40.  
  41.                          Alan Wigginton
  42.                          23 Carissa St
  43.                          Shailer Park,  Queensland  4128.
  44.                          AUSTRALIA
  45.  
  46.  
  47.    ======================================================================
  48.  
  49.    PROGRAM DESCRIPTION
  50.  
  51.    A flexible, fast and easy to use flat file database using random access
  52.    with intelligent buffering to minimise disk access, multiple indexes
  53.    for fast access to records, form and list style screens and reports,
  54.    and fast sorting and searching. Files are quickly and easily defined,
  55.    and fields can be added, changed or deleted at any time.
  56.  
  57.    WARNING. QuickFile is a random access data base that buffers records
  58.             in memory. Failure to exit the program properly after updates
  59.             are made will result in lost updates.
  60.             ALWAYS exit the program before a reboot or power off.
  61.  
  62.             
  63.    USING THE DEMONSTRATION DATABASES.
  64.  
  65.    Two demonstration databases are provided. Click on one of these icons
  66.    to start Quickfile and display the first record in the file. It is a
  67.    good idea to browse through this document to get a feel for the program
  68.    before trying to do too much.
  69.  
  70.    It is strongly suggested that you copy QuickFile to a work disk before
  71.    you try adding or updating records. The easiest way to do this is to
  72.    drag the QuickFile icon into another disk window.
  73.  
  74.  
  75.    ======== ENHANCEMENTS SINCE VERSION 1.0 ====================
  76.  
  77.    1.  Support for the ASL and ARP file requesters. Note that you can still
  78.        use QuickFile even if you don't have either of these.
  79.  
  80.    2.  Choice of FORM or LIST (column) style reports.
  81.  
  82.    3.  Reporting options provided allowing
  83.  
  84.        -  User specified report Title
  85.        -  Override of printer preferences values for margins, print size,
  86.           line spacing, lines per page
  87.        -  Suppression of pagination and field titles to provide a primitive
  88.           label printing facility.
  89.  
  90.  
  91.    ======== GETTING STARTED =========
  92.  
  93.    QuickFile can be started from the WorkBench using the QuickFile icon or
  94.    a project icon for a data base. It can also be started from the CLI and
  95.    accepts a file name (optional) as a parameter.
  96.  
  97.    Icons are not generated by the program. Sorry, but if you want them you
  98.    will have to create them yourself.
  99.  
  100.    If you start QuickFile with a file (from a project icon or from the
  101.    CLI), the Form display appears showing the first record. If you do not
  102.    specify a file, the screen will be blank. You can select either Open or
  103.    Define New from the project menu.
  104.  
  105.    The window title bar is used to display a status line and status
  106.    messages. The status line contains
  107.  
  108.            Name of the file being used.
  109.            Name of the index being used.
  110.            Current record number.
  111.            Total number of records.   
  112.  
  113.    QuickFile uses indexes to sequence the records and to provide rapid
  114.    access by field value. You can have a number of indexes, all of which
  115.    are automatically maintained as you add, change and delete records. The
  116.    current index is displayed in the title line. If other indexes are
  117.    available you can choose them with Use Index on the View menu.
  118.  
  119.    Standard Amiga text gadgets are used for entering data. These provide
  120.    the following editing keys
  121.  
  122.       right Amiga-X    Erase all text in the gadget (Control-X does the
  123.                        same)
  124.  
  125.       right Amiga-Q    Restores the text that was present before you
  126.                        changed it.
  127.  
  128.       Shift-left arrow Moves the cursor to the beginning of the field.
  129.  
  130.       Shift-right arrow Moves the cursor to the end of the field.
  131.  
  132.       Shift-Del        Erases all characters from the cursor to the end of
  133.                        the gadget.
  134.  
  135.       Shift-Backspace  Erases all characters to the left of the cursor.
  136.  
  137.  
  138.    ============== PROGRAM FUNCTION ==================
  139.  
  140.    This section describes the two main display formats, followed by an
  141.    explanation of each menu item.
  142.  
  143.  
  144.    FORM DISPLAY
  145.  
  146.    This is the initial display you are shown after you open a file. It has
  147.    fields displayed down the screen and a row of buttons across the
  148.    bottom.
  149.  
  150.    The button functions are:
  151.  
  152.    Next, Back.
  153.       Use these to browse forward and backward through the database one
  154.       record at a time.
  155.  
  156.    GoTo
  157.       This brings up a requester for you to enter the key of the
  158.       required record. Pressing the OK button or RETURN on the last key
  159.       field will perform the GoTo.
  160.  
  161.       If the key you enter does not exist, the next higher record is
  162.       displayed. You can enter "SM" to position on the record for SMITH
  163.       followed by SMITHERS, SMITHFIELD etc.
  164.  
  165.    Insert
  166.       Displays a blank screen and lets you enter values. Press RETURN on
  167.       each field to move you to the next field.
  168.  
  169.       Press the Copy button to copy the contents of the last record
  170.       displayed or added. This is useful if you are entering records with
  171.       similar values in some fields of each record.
  172.  
  173.       Press Insert to store the details and clear the fields ready for
  174.       the next record.
  175.  
  176.       Press Cancel to return to Browse mode.  NB When Cancel is pressed
  177.       any values displayed on the screen will be lost. Press Insert if
  178.       you want them stored.
  179.  
  180.    Modify
  181.       Displays the current record for you to make changes. Press Update
  182.       to store the changes. Press Cancel to keep the current values.
  183.  
  184.    Delete
  185.       Brings a requester asking you to confirm the deletion. Press OK to
  186.       delete the record. Press Cancel if you really want to keep it.
  187.  
  188.  
  189.    LIST DISPLAY
  190.  
  191.    This is obtained by selecting List from the VIEW menu. It displays as
  192.    many records as will fit in the window with a single line per record.
  193.    The first time you select List you will be presented with a requester
  194.    to select the fields to display. There is currently no sideways
  195.    scrolling so you must select the fields you want to see or they may
  196.    fall of the edge of the screen.
  197.  
  198.    Select Fields Requester
  199.       You select fields from the Available fields box on the left by
  200.       clicking on them. Each field you select appears in the Selected
  201.       Fields box on the right with its length. You can reduce this length
  202.       to display only part of the field and thus fit more fields on the
  203.       screen.
  204.  
  205.       The Clear button clears all current selections for you to start
  206.       again. You cannot add or delete individual fields that have been
  207.       selected.
  208.  
  209.    Record Selection
  210.       You can select a record by clicking on it so that it is high-
  211.       lighted. Double clicking on a record will change to the Form
  212.       display of that record.
  213.  
  214.  
  215.    List Display Buttons
  216.  
  217.    Next, Back
  218.       These move you forward or back by one screen. Pressing the Next or
  219.       Back button with a record selected, will position that record at
  220.       the top or bottom of the screen respectively.
  221.  
  222.    GoTo
  223.       This functions as for the Form display.
  224.  
  225.    Layout
  226.       This brings up the Select Fields requester to change the fields
  227.       displayed.
  228.  
  229.  
  230.    ============= MENU FUNCTIONS =================
  231.  
  232.    PROJECT MENU
  233.  
  234.    NOTE: QuickFile supports the ASL and ARP file requesters.
  235.  
  236.          The ASL requester (WB2) will be used if asl.library is in your
  237.          LIBS: directory.
  238.  
  239.          The ARP requester will be used if arp.library is in your LIBS:
  240.          directory.
  241.  
  242.          If you have neither, QuickFile will use a requester with simple
  243.          string gadgets for you to enter Drawer and File names.
  244.  
  245.    Open
  246.       Brings up a file requester for you to select the file to process.
  247.       Always enter the definition name - the one with no suffix.
  248.  
  249.    Save
  250.       Writes all updated blocks and indexes to disk. You should use this 
  251.       periodically during a long update session.
  252.  
  253.    Close
  254.       Writes all updated records and indexes to disk and closes the file
  255.       but leaves the program running. 
  256.  
  257.    Define New
  258.       Displays the definition screen for a new data base. If a file is
  259.       open it will be closed after asking you for confirmation. See below
  260.       for definition details.
  261.  
  262.    Alter
  263.       Displays the definition of the current file for you to make changes.
  264.       The file will be closed before you can do this. You will be asked
  265.       for confirmation before this is done.
  266.  
  267.    BackUp
  268.       Creates a copy of the definition and data files (not the indexes).
  269.       A requester is displayed for you to enter the backup file name. The
  270.       default is filename.bkp.
  271.  
  272.       Backup uses the current index. You can write selected records to
  273.       another file by choosing Selected from the View menu before Backup.
  274.       If you choose Backup while viewing selected records, you will be
  275.       asked for confirmation to avoid accidental loss of data.
  276.  
  277.       The file is reorganised during backup so a backup followed by a
  278.       restore will reorganise your file. Free space is adjusted to the
  279.       value specified in the file definition and records are physically
  280.       stored in the sequence of the active key. Select your most used key
  281.       sequence before doing the backup to ensure fastest access in the
  282.       reorganised file.
  283.  
  284.       The backup file is a QuickFile data base so you can open it like any
  285.       other database file.
  286.  
  287.    Restore
  288.       Restores from a copy made using the backup menu item. You will be
  289.       asked for two file names (using the requester)
  290.  
  291.       1.  The file to be restored from (source)
  292.       2.  The file to be restored (target)
  293.  
  294.       After the file is restored, the indexes are automatically rebuilt.
  295.  
  296.    Exit
  297.       Writes all updated records and indexes to disk, closes the file and
  298.       exits the program. Selecting the Close gadget on the screen has the
  299.       same effect. A requester is displayed to confirm your choice.
  300.  
  301.  
  302.    VIEW MENU
  303.  
  304.    Form
  305.       Changes to or refreshes the Form display.
  306.  
  307.    List
  308.       Changes to the List display. See above.
  309.  
  310.    Use Index
  311.       This has a sub-menu showing a list of indexes for you to choose from.
  312.       The first sub-menu item selects the "Sorted" sequence but will be
  313.       ghosted until you perform a sort.
  314.  
  315.       When you change indexes, the same record is displayed but the file
  316.       will be in a new sequence. e.g. You can use this to find a book by a
  317.       particular author and then select the subject index to list all other
  318.       books on the same subject.
  319.  
  320.    Selected
  321.       Allows you to display previously selected records. This will be
  322.       ghosted unless your have used Select from the Tools menu. See Tools
  323.       menu for more details.
  324.  
  325.  
  326.    TOOLS MENU
  327.  
  328.    Sort
  329.       Brings up a requester for you to select fields to sort on.  Sort
  330.       effectively creates a temporary index that is updated automatically
  331.       as you add, delete and change records. The Sort index is discarded
  332.       when the file is closed but until then, you will not need to re-sort
  333.       because you have added more records or changed key fields.
  334.  
  335.       Sort Requester
  336.       This is identical to the List requester. You can sort over more than
  337.       one field at a time, although you can currently only sort into
  338.       ascending sequence. You can reduce the field length used for the
  339.       sort to reduce the memory required for sorting.
  340.  
  341.       Press OK to start the sort, or Cancel if you have changed your
  342.       mind. Sorting is quite fast so you shouldn't have to wait long. A
  343.       sort (over one field) of the 1300 records on my largest file takes
  344.       22 seconds. This is on a 1MB standard A500.
  345.  
  346.       The sort technique used requires that all sort keys be resident in
  347.       memory, so record buffers are freed to maximise available memory
  348.       before the sort is started. You may notice that disk activity
  349.       increases after a sort as buffers are reloaded.
  350.  
  351.    Select
  352.       Searches through the data base looking for records with fields
  353.       matching requested values.  A blank screen is displayed for you to
  354.       enter your selection criteria. Only fields in which you enter a
  355.       value are used in the search, and a field matches if it contains the
  356.       search string anywhere within it. (eg "bit" would find "The Hobbit"
  357.       and "Bitter Sweet". The search ignores case so that "DOG" matches
  358.       "Dog" and even doG.
  359.  
  360.       Press Search to start the search or Cancel to return to the previous
  361.       screen.
  362.  
  363.       The selected data will be in the same sequence as the current Index.
  364.       The title bar will now show the number of records selected. Don't
  365.       panic, you haven't lost you file. The full number will be displayed
  366.       when you choose another index.
  367.  
  368.       A Selection of records is an index which is updated automatically for
  369.       deletions and changes but not additions.
  370.  
  371.    Build Index
  372.       Rebuilds the current index. This can be used if the index and data
  373.       files are inconsistent for some reason (eg a system failure). This
  374.       will rebuild the index from the data file.
  375.  
  376.  
  377.    PRINT MENU
  378.  
  379.    Print Screen
  380.  
  381.       Prints the records currently displayed on the screen.
  382.  
  383.    All Records
  384.  
  385.       Prints all records in the current index (or Sort or Selection). 
  386.  
  387.    The first time a report item is selected in a session, the Select Fields
  388.    requester is displayed for you to choose the fields to be printed.
  389.    Pressing OK then brings up the print requester which contains:
  390.  
  391.    Title
  392.       Allows you to enter a title to be printed at the top of each page of
  393.       your report. The title line will also show the current date at the
  394.       left margin and the page number at the right margin.
  395.  
  396.       The title line is only printed if you enter a Title. Note that even a
  397.       single space will print a blank title. Use CTRL-X to ensure that all
  398.       characters are deleted.
  399.  
  400.    Left and Right Margins
  401.       Allows you to temporarily override the current preferences settings.
  402.       QuickFile will not print beyond the character position specified in
  403.       the right margin.
  404.  
  405.    Lines/Page
  406.       This controls the number of lines QuickFile will use on each page.
  407.       The default is paper size minus 8 to provide a top and bottom margin.
  408.  
  409.       A value of zero will suppress the report title and page breaks.
  410.  
  411.    Print Size.
  412.       This button operates like a WB2 cycle gadget. Each time you press it
  413.       displays the next value from the following
  414.  
  415.          10 cpi  (PICA)
  416.          12 cpi  (ELITE)
  417.          17 cpi  (FINE)  The Commodore manuals call this 15-Fine, but on my
  418.                          Epson compatible printer it prints at 17 cpi.
  419.  
  420.    Lines Per Inch
  421.       This button toggles between 6 and 8 lines per inch.
  422.  
  423.    Field Names?
  424.       Toggles between YES and NO. NO suppresses field names.
  425.  
  426.    Report Type
  427.       Toggles between FORM and LIST. These are similar to the screen types.
  428.  
  429.       FORM prints the fields down the page with the field names on the
  430.            left.
  431.       LIST prints fields in columns across the page with the field names at
  432.            the top of each column.
  433.  
  434.  
  435.    OK Button
  436.       This will start printing the report.
  437.  
  438.    Layout
  439.       This brings up the Select Fields requester for changing the fields to
  440.       be printed.
  441.  
  442.    Cancel
  443.       Returns to the main display and cancels any changes entered into the
  444.       requester.
  445.  
  446.    To print labels:
  447.       
  448.     . Use Lines/Page of zero to suppress the title and page breaks.
  449.     . Use NO for the Field Names? button.
  450.     . Select one field for each line on the label. (You may need to define
  451.       a dummy field that is always blank. It will use no space).
  452.  
  453.     You can place only one field on each line and all fields will start in
  454.     the same position.
  455.  
  456.    To print lines of 136 characters (useful for LIST reports)
  457.  
  458.      . Press the Print Size button until 17cpi is displayed.
  459.      . Set left margin to 1 and right margin to 136 (80 column printer).
  460.  
  461.    OPTIONS MENU
  462.  
  463.    About
  464.  
  465.       Displays the version number of this copy of QuickFile.
  466.  
  467.    Buffers
  468.  
  469.       Displays the number of buffers currently in use. This will start at
  470.       1 and gradually increase as you access records until the entire file
  471.       is in memory or the maximum allowed is reached. The maximum buffers
  472.       can be changed by altering the definition (see below)
  473.  
  474.  
  475.    ============== FILE DEFINITION ==================
  476.  
  477.    Selecting either Define New or Alter from the Project Menu places you
  478.    in the definition sreen.
  479.  
  480.    CHANGING A FILE DEFINITION
  481.  
  482.    You can change just about everything in a file definition except the
  483.    block size. You can change field names, types and lengths. You can add
  484.    or delete fields, and add or delete indexes.
  485.  
  486.    The OK button on the definition screen will save the definition and
  487.    return you to the main screen. The cancel button will reload the
  488.    original definition to undo any changes you have made.
  489.  
  490.    WARNING: Deleting a field makes its data inaccessible, even if you
  491.             re-add the same field. If you accidentally delete a field,
  492.             press the Cancel button to cancel the changes to the
  493.             definition and start again.
  494.  
  495.    DEFINING A NEW FILE
  496.  
  497.    The following describes all of the fields in the sequence you will
  498.    normally enter them
  499.  
  500.    FILE DETAILS
  501.  
  502.    Block Size
  503.       QuickFile does not read and write single records at a time, but
  504.       builds them into blocks. This reduces the number of disk reads and
  505.       writes required. Around 2000 seems to give good results. There is
  506.       currently no way to change block size on an existing file. Block
  507.       size must be larger than the maximum record size plus free space
  508.       plus some space for control fields.
  509.  
  510.    Free Space
  511.       Specifies the amount of free space to be left in each block to allow
  512.       for records to expand. As QuickFile only stores the actual data
  513.       entered (not trailing blanks), additional space is required if a
  514.       change makes a field longer. 100 seems to work OK. Records are moved
  515.       to another block if necessary, so this is not critical.
  516.  
  517.    Buffers
  518.       This is the maximum number of buffers QuickFile will use for holding
  519.       blocks of records in memory. I usually specify 40 which will use up
  520.       to approximately 80k (with 2000 byte blocks).  Unless you have large
  521.       files this does not matter, as QuickFile will never allocate more
  522.       buffers than are required for the whole file.  If you have a large
  523.       file and enough memory, make this large enough to hold the whole file
  524.       in memory. 
  525.  
  526.  
  527.    FIELDS
  528.  
  529.    Use the Add button to add a field. A requester will appear for the
  530.    field details. If a field is highlighted when you press add, the new
  531.    field will be added above the highlighted field, otherwise it is
  532.    added to the end of the list.
  533.  
  534.    To change or delete fields, click on the field, then press the
  535.    appropriate button. A requester will appear for you to make or changes
  536.    or to confirm the deletion.
  537.  
  538.    The number of fields is currently limited by screen size. You could use
  539.    an interlace screen to give more fields if you were desperate.
  540.  
  541.    The Field Requester contains the following fields
  542.  
  543.       Name
  544.       Enter a name of up to 12 characters for the field.
  545.  
  546.       Type
  547.       Fields can be either numeric (N) or character (C). You will only be
  548.       able to enter integers (no decimals) into numeric fields.
  549.  
  550.       Length
  551.       Enter the required length. 60 characters is a practical maximum
  552.       length as no left and right scrolling is provided and more
  553.       characters cannot be displayed. (You can scroll within fields on the
  554.       update screen, but this is pretty tedious.
  555.  
  556.       All of these values can be changed at any time without any unexpected
  557.       effects. If you reduce the length of a field, excess data is only
  558.       discarded from records as they are updated. Increasing the field
  559.       length will restore the old data except for records you have changed.
  560.       Note that backup/restore will update all records.
  561.  
  562.  
  563.    INDEXES
  564.  
  565.    You must define at least one index to be used for sequencing your
  566.    records, and using GoTo to instantly locate a record. If you are not
  567.    sure pick any field that will give a useful sequence, such as surname,
  568.    title etc.
  569.  
  570.    Fields cannot be added to or deleted from indexes, so changes are made
  571.    by deleting and redefining the index. This should not be much of a
  572.    problem as they are easy to define.
  573.  
  574.    Selecting insert brings up a requester. You must give the index a name
  575.    (up to 8 characters) and select the fields to be used. You can use part
  576.    of a long field for an index by changing the default length. This will
  577.    reduce sort storage requirements when rebuilding indexes.
  578.  
  579.    Limit yourself to indexes you are going to use often. I find it
  580.    difficult to see how more than 2 or 3 would be useful, particularly as
  581.    sorting is quite fast.
  582.  
  583.    Indexes are maintained automatically as you add, modify and delete
  584.    records on your file so they reduce the need for sorting and resorting.
  585.  
  586.  
  587.    ================  ADDITIONAL INFORMATION ==================
  588.  
  589.    FILES
  590.  
  591.    QuickFile uses three types of file distinguished by extension. These
  592.    are not text files and cannot be edited with most text editors. Using a
  593.    hex editor will probably corrupt the file. YOU HAVE BEEN WARNED.
  594.  
  595.    The DEFINITION FILE has no extension. This is the name you enter when
  596.    specifying a file name for QuickFile.
  597.  
  598.    The DATA FILE has an extension of .Data.
  599.  
  600.    INDEX FILES have an extension of .nameX where 'name' is the name of the
  601.    index as specified in the file definition.
  602.  
  603.  
  604.    INDEX FILE PROBLEMS
  605.  
  606.    If you are suspect an index has been corrupted in some way, you can
  607.    delete the index file (called filename.indnameX). When you open the
  608.    file next and select that index, it will display 0 records. Select
  609.    Build Index and any problems with the index should be fixed.
  610.  
  611.  
  612.    ========================= HISTORY ================================
  613.  
  614.    1.2.1  16 Feb 93
  615.  
  616.      1  Included list style reports
  617.  
  618.      2  Included ASL and ARP file requesters
  619.  
  620.      3  New print requester to improve control of reports
  621.  
  622.      4  The index field size is now updated correctly if you change the
  623.         length of an existing field used as an index.
  624.  
  625.      5  Index record memory dynamically reallocated if necessary.
  626.  
  627.      6  If you add an index to an existing file, the index will be
  628.         rebuilt automatically when you open the file again.
  629.  
  630.      7  You are now warned if you attempt a backup while displaying
  631.         selected records. Only the selected records will be written to the
  632.         backup file.
  633.  
  634.      8  You can now open a file where the drawer contains only a drive or
  635.         disk name with no directory. eg df0:
  636.  
  637.    1.0.0  24 Nov 92
  638.  
  639.        Initial Release
  640.  
  641.  
  642.    =======================  BUGS  ==========================
  643.  
  644.    None known
  645.  
  646.  
  647.    ====================  LIMITATIONS  ======================
  648.  
  649.    While QuickFile has a point and click user interface, this is not as
  650.    polished as it could be. List boxes for example do not scroll and there
  651.    is no file requester. I hope to improve this in future versions
  652.  
  653.    Number of Fields per Record
  654.  
  655.       This is limited by screen size.  It should be ample for most
  656.       purposes.  If you have reduced the window size, fewer fields can be
  657.       displayed in the definition window. Increasing the size will
  658.       increase the maximum number of fields. If you want lots of fields
  659.       you could use an interlaced Workbench.
  660.  
  661.    Number of Records per File
  662.  
  663.       The theoretical limit is something like 16 million. In practice this
  664.       will be limited by the indexing technique which will run out of either
  665.       memory or processor speed. Each index requires 4 bytes per record and
  666.       this must be a single block.
  667.       
  668.       My largest file is just over 1300 records and it is fine. I expect it
  669.       to be able to handle several thousand records without problems.
  670.  
  671.       While files can be larger than available memory, it will run much
  672.       faster if you can set the number of buffers large enough to contain
  673.       the whole file.
  674.       
  675.       I would be interested to hear from anyone using it with larger files.
  676.  
  677.    Fonts
  678.  
  679.       QuickFile requires an 8 x 8 font such as Topaz80. It will run with
  680.       Topaz 60, but the displays get a bit messy.
  681.  
  682.    Error Handling
  683.  
  684.       Some error handling is still less than adequate. Memory allocation
  685.       errors may cause the program to fail with an error message rather
  686.       than give a warning for you to free some memory.
  687.  
  688.       A "disk full" error will also cause an immediate termination.
  689.  
  690.